Information processing device, information processing method, and computer program product

ABSTRACT

An information processing device includes: a posture change determining unit that determines, based on an output value of an inertial sensor, whether a posture state of a moving object has changed; a reference orientation generating unit that, when it is determined that the posture state of the moving object has changed from a first posture state into a second posture state, generates a reference orientation corresponding to an orientation of the moving object at that time calculated from the output value of the inertial sensor; and an orientation error calculating unit that, when it is determined that the posture state of the moving object has changed from the second posture state into the first posture state, calculates an error of an orientation of the moving object according to the reference orientation, and an orientation at that time calculated from the output value of the inertial sensor.

TECHNICAL FIELD

The present invention relates to an information processing device, aninformation processing method, and a computer program product.

BACKGROUND ART

A positioning technique with autonomous navigation using an inertialsensor is known as a technique for measuring the position or orientationof a pedestrian in a place difficult to receive a signal from a GlobalPositioning System (GPS) such as an indoor place. For example, varioussensors including an acceleration sensor, an angular velocity sensor,and a geomagnetism sensor are used as the inertial sensor. Specifically,in the autonomous navigation, the current position or orientation of thepedestrian is measured by calculating the distance by which and thedirection in which the pedestrian has traveled based on the movement ofthe pedestrian detected using the inertial sensor and integrating thecalculated results.

However, there is a possibility in the positioning with the autonomousnavigation that the more the integration of the calculated results ofthe distances or directions is repeated, the more the error isaccumulated due to, for example, the effect of the bias included in theresults detected with the angular velocity sensor. In addition, thegeomagnetism is not stable and it is difficult to correct theorientation with the geomagnetism sensor in the positioning with theautonomous navigation because there is the disturbance in the magneticfield caused, for example, by various electric appliances or structuresof buildings.

In light of the foregoing, in these days, there is a technique thatpreviously measures the drift value in the angular velocity sensor ofthe measuring device based on the gravitational direction (verticallydownward) of the pedestrian using the inertial sensor to correct theoffset in the angular velocity sensor. There is also a technique thatextracts a variation in the previous detected value similar to avariation in the current detected value based on the value previouslydetected with the inertial sensor of the pedestrian and uses theextracted result to calculate the reference value that is referenced tocorrect the current detected value.

However, the existing techniques described above have a problem in thatit is difficult to accurately determine the orientation of a movingobject such as a pedestrian. For example, the drift value in the angularvelocity sensor varies depending on the temperature or time on thatoccasion, and thus, when a moving object is positioned without walkingfor a long time, an error from the previous offset value occur, and theerror is accumulated in the integration of the calculation results withthe angular velocity sensor. Even when the current detected value issimilar to the previous detected value, the offset values of theinertial sensor are different and there is a possibility that thereference value is not preferable when the orientations of thepedestrian are different.

In light of the foregoing, there is a need to provide an informationprocessing device, information processing method, and a computer programproduct that can more accurately determine the orientation when a movingobject starts moving even when the positioning has been performed for along time.

SUMMARY OF THE INVENTION

An information processing device includes: a posture change determiningunit that determines, based on an output value of an inertial sensor,whether a posture state of a moving object has changed; a referenceorientation generating unit that, when it is determined that the posturestate of the moving object has changed from a first posture state into asecond posture state different from the first posture state, generates areference orientation corresponding to a first orientation of the movingobject when the state has changed into the second posture state, thefirst orientation being calculated from the output value of the inertialsensor; and an orientation error calculating unit that, when it isdetermined that the posture state of the moving object has changed fromthe second posture state into the first posture state, calculates anerror of an orientation of the moving object when the state has changedinto the first posture state according to the reference orientation, anda second orientation of the moving object when the state has changedinto the first posture state, the second orientation being calculatedfrom the output value of the inertial sensor.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a diagram of an exemplary hardware configuration of aninformation processing device according to a first embodiment.

FIG. 2 is a functional block diagram of an exemplary configuration ofthe information processing device according to the first embodiment.

FIG. 3 is a diagram of exemplary variation in the vertical accelerationwhen a posture state changes.

FIG. 4 is a flowchart of a flow of a reference orientation determiningprocess according to the first embodiment.

FIG. 5 is a diagram of exemplary variation in the vertical accelerationwhen the posture state changes in an exemplary modification of the firstembodiment.

FIG. 6 is a flowchart of an exemplary flow of the reference orientationdetermining process according to the exemplary modification of the firstembodiment.

FIG. 7 is a functional block diagram of an exemplary configuration of aninformation processing device according to a second embodiment.

FIG. 8 is a flowchart of an exemplary flow of a reference orientationdetermining process according to the second embodiment.

FIG. 9 is a functional block diagram of an exemplary configuration of aninformation processing device according to a third embodiment.

FIG. 10A is a diagram of exemplary variation in the verticalacceleration and angular velocity when the posture state changes.

FIG. 10B is a diagram of exemplary variation in the verticalacceleration and angular velocity when the posture state changes.

FIG. 11 is a flowchart of an exemplary flow of a reference orientationdetermining process according to the third embodiment.

FIG. 12 is a diagram of an exemplary configuration of a positioningsystem including a server device.

FIG. 13 is a functional block diagram of exemplary configuration of amobile terminal device and a server device included in the positioningsystem.

DESCRIPTION OF EMBODIMENTS

The embodiments of the information processing device, the informationprocessing method, and the computer program product according to thepresent invention will be described hereinafter with reference to theappended drawings. Note that the present invention is not limited to theembodiments to be described below. The embodiments can appropriately becombined with each other as long as no conflict arises in the contents.An example in which the moving object is a person (user) will bedescribed in each of the embodiments.

First Embodiment Hardware Configuration

The hardware configuration of an information processing device accordingto a first embodiment will be described using FIG. 1. FIG. 1 is adiagram of an exemplary hardware configuration of the informationprocessing device according to the first embodiment.

As illustrated in FIG. 1, the information processing device 100 includesa Central Processing Unit (CPU) 12, a Read Only Memory (ROM) 13, aRandom Access Memory (RAM) 14, an inertial sensor 15, and an operationdisplay unit 16 that are connected to each other through a bus 11. Forexample, the information processing device 100 is a mobile terminaldevice such as a smartphone that the user possesses or a dedicatedterminal device for positioning the user.

Among them, the CPU 12 controls the entire information processing device100. The ROM 13 stores a program or various types of data used inprocessing executed according to the control of the CPU 12. The RAM 14temporarily stores, for example, the data used in processing executedaccording to the control of the CPU 12. The inertial sensor 15 includesvarious sensors used for positioning. Examples of the inertial sensor 15include an acceleration sensor, an angular velocity sensor, and ageomagnetism sensor. The operation display unit 16 receives an inputoperation from the user, and displays various types of information tothe user. For example, the operation display unit 16 is a touch panel.Note that the information processing device 100 can include acommunication unit for communicating with another device.

Device Configuration According to First Embodiment

Next, the information processing device according to the firstembodiment will be described using FIG. 2. FIG. 2 is a functional blockdiagram of an exemplary configuration of the information processingdevice according to the first embodiment.

As illustrated in FIG. 2, the information processing device 100 includesthe inertial sensor 15, the operation display unit 16, a posture anglemeasuring unit 110, and a reference orientation measuring unit 120. Theinformation processing device 100 determines, for example, the positionor orientation of the user. Among them, the posture angle measuring unit110 includes a posture information calculating unit 111, and aposition/orientation calculating unit 112. The reference orientationmeasuring unit 120 includes a posture state detecting unit 121, aposture change determining unit 122, a reference orientation generatingunit 123, and an orientation error calculating unit 124. Some or all ofthe components described above may be software (a program), or ahardware circuit.

Next, the entire configuration of the present embodiment will bedescribed. An objective of the present embodiment is to correct theorientation of the user when the user stands up again using when theuser sits on a chair as a reference, and to use the amount of error ofthe orientation at that time as the offset value so as to suppress thedeviation of the orientation of the user. More specifically, based onvarious sensor values output from the inertial sensor 15, the postureangle measuring unit 110 calculates the current posture information andorientation of the user. Here, the posture information of the userindicates the posture angle of the user using the gravitationaldirection as a reference or the value of each of the sensors. At thattime, based on the posture information of the user calculated with theposture angle measuring unit 110, the reference orientation measuringunit 120 determines the posture state of the user, generates a referenceorientation when the user sits on a chair, and calculates the amount oferror from the reference orientation when the user stands up again.Then, based on the amount of error of the orientation calculated withthe reference orientation measuring unit 120, the orientation of theuser in the posture angle measuring unit 110 is corrected, and thedeviation of the orientation of the user is suppressed using the amountof error of the orientation as the offset value. Each of the componentswill be described hereinafter.

The inertial sensor 15 includes various sensors installed on asmartphone or the like. For example, the inertial sensor 15 includes,for example, an acceleration sensor, an angular velocity sensor, and ageomagnetism sensor, and outputs the detected sensor value. Theoperation display unit 16 receives an input operation from the user anddisplays various types of information to the user. As described above,the operation display unit 16 is, for example, a touch panel. Forexample, the operation display unit 16 receives the input operation forstarting positioning the user, and displays the positioning results, forexample, of the position and orientation of the user.

The posture angle measuring unit 110 calculates, for example, theposition, orientation, and posture angle of the user based on the sensorvalues output from the inertial sensor 15. The positioning resultsobtained from the calculations of the position and orientation with theposture angle measuring unit 110 are output to the operation displayunit 16 and the reference orientation measuring unit 120. Thepositioning results can be output not only to the operation display unit16 and the reference orientation measuring unit 120 but also to anexternal device. When the positioning results are output to an externaldevice, a communication unit (communication interface) for connecting toa network such as the Internet is used.

The posture information calculating unit 111 calculates the postureangle of the user and the sensor value on a coordinate system using thegravitational direction as a reference according to the sensor valueoutput from the inertial sensor 15. More specifically, the postureinformation calculating unit 111 finds a gravitational direction(vertically downward) vector according to the acceleration vector outputfrom the acceleration sensor and the angular velocity vector output fromthe angular velocity sensor. Then, the posture information calculatingunit 111 calculates the posture angle of the user according to thegravitational direction vector, and the angular velocity vector or themagnetic direction vector output from the geomagnetism sensor. When theposture angle of the user is calculated, it is assumed that the rotationangle about a vertical axis of the information processing device 100 isthe yaw angle, the rotation angle about an axis perpendicular to thevertical direction and in the left and right direction is the pitchangle, and the rotation angle about an axis perpendicular to thevertical direction and in the front and back direction is the rollangle. Then, the posture information calculating unit 111 calculates theposture angles of the user denoted with the yaw angle, the pitch angle,and the roll angle using the gravitational direction as a reference.

The posture information calculating unit 111 further performs acoordinate transformation of the sensor values output from the inertialsensor 15 to the coordinate system using the gravitational direction asa reference based on the calculated posture angle of the user. Morespecifically, the posture information calculating unit 111 calculatesthe rotation matrix to the coordinate system using the gravitationaldirection as a reference from the yaw angle, pitch angle, and roll angleusing the gravitational direction as a reference that are calculated inthe posture information calculating unit 111. Then, the sensor valuesoutput from the inertial sensor 15 is rotated with the rotation matrixto calculate the sensor values on the coordinate system using thegravitational direction as a reference.

The posture information calculating unit 111 receives the error of theorientation accumulated due to the positioning from the referenceorientation measuring unit 120, and calculates the offset value tocorrect the posture angle calculated based on the sensor value outputfrom the inertial sensor 15. Then, the posture information calculatingunit 111 corrects the posture angle based on the calculated offsetvalue. After that, the posture information calculating unit 111 outputsthe posture angle corrected with the offset value and the sensor valuesafter the coordinate transformation to the position/orientationcalculating unit 112 and the posture state detecting unit 121.

The position/orientation calculating unit 112 calculates the positionand orientation of the user. More specifically, the position/orientationcalculating unit 112 receives the posture angle output from the postureinformation calculating unit 111 and the sensor values after thecoordinate transformation. Then, the position/orientation calculatingunit 112 calculates the acceleration vector generated due to the walkingmotion of the user. Subsequently, the position/orientation calculatingunit 112 analyzes and detects the walking motion from the accelerationvector generated due to the walking motion.

After that, based on the detected result, the position/orientationcalculating unit 112 measures the magnitude of the walking motion basedon the gravity acceleration vector and the acceleration vector generateddue to the walking motion, and converts the measured result into thestride. Then, the position/orientation calculating unit 112 finds therelative displacement vector from a reference position by integratingthe posture angle and the stride. The found relative displacement vectoris the positioning result indicating the position and orientation of theuser. The position/orientation calculating unit 112 outputs thepositioning result to the operation display unit 16 and to theorientation error calculating unit 124.

The reference orientation measuring unit 120 generates the referenceorientation according to the posture state of the user, and calculatesthe error of the orientation of the user according to the referenceorientation and the orientation of the user. The error of theorientation of the user calculated with the reference orientationmeasuring unit 120 is output to the posture angle measuring unit 110.Note that the reference orientation will be described in detail below.

The posture state detecting unit 121 detects the posture state of theuser. More specifically, the posture state detecting unit 121 detectsthe posture state of the user that is in a standing state or anon-standing state based on the sensor values after the coordinatetransformation output from the posture information calculating unit 111.Here, the non-standing state indicates a state in which the user doesnot stand (does not move on foot), for example, a state in which theuser sits on a chair, a floor, a ground, or the like, or a state inwhich the user lies on a floor or a ground. The posture state isdetected based on the vertical component of the acceleration of theinformation processing device 100 (hereinafter, referred to as “verticalacceleration”) in an aspect. For example, when the user sits down on thechair from the standing state (including a state in which the user is inwalking), or when the user stands up from the state in which the usersits on the chair, a predetermined characteristic appears in thevariation in the vertical acceleration. Then, the posture statedetecting unit 121 outputs the detected posture state to the posturechange determining unit 122. Note that the standing state is anexemplary first posture state. The non-standing state is an exemplarysecond posture state.

The posture change determining unit 122 determines, based on the posturestate, whether the posture state of the user has changed. FIG. 3 is adiagram of exemplary variation in the vertical acceleration when theposture state changes. In FIG. 3, the vertical acceleration is shown onthe vertical axis, and the time is shown on the horizontal axis. In FIG.3, the vertical acceleration is filtered with a Low Pass Filter (LPF)such that the predetermined characteristic appearing when the posturestate changes is easy to find. As illustrated in FIG. 3, the value ofthe vertical acceleration varies in a positive direction first and thenvaries largely in a negative direction from around 2 seconds. Thevariation in the vertical acceleration indicates, for example, that theuser gets into a standing state from the state in which the user sits onthe chair. The value of the vertical acceleration varies in a negativedirection first and then varies largely in a positive direction fromaround 9 seconds. The variation in the vertical acceleration indicate,for example, that the user gets into a state in which the user sits on achair from the standing state. The posture change determining unit 122determines, from the temporal variation in the vertical accelerationillustrated in FIG. 3, that the user stands up from the sitting state orsits down from the standing state. Then, the posture change determiningunit 122 outputs the determination results of the posture state to thereference orientation generating unit 123 and the orientation errorcalculating unit 124.

The reference orientation generating unit 123 generates the referenceorientation. More specifically, when the posture change determining unit122 determines that the posture state of the user has changed from thestanding state to the sitting state, the reference orientationgenerating unit 123 generates the reference orientation corresponding tothe orientation of the user when the state has changed into the sittingstate. The orientation of the user when the state has changed into thesitting state can be obtained from the position/orientation calculatingunit 112. The reference orientation is generated (updated) every timethe posture state of the user gets into a sitting state from a standingstate. The generated (updated) reference orientation is appropriatelyused in the orientation error calculating unit 124.

The orientation error calculating unit 124 calculates the error of theorientation of the user. More specifically, when the posture changedetermining unit 122 determines that the posture state of the user haschanged from the sitting state to the standing state, the orientationerror calculating unit 124 obtains the orientation of the user when thestate has changed into the standing state from the position/orientationcalculating unit 112. In other words, the orientation error calculatingunit 124 obtains the current orientation of the user from theposition/orientation calculating unit 112. Then, the orientation errorcalculating unit 124 calculates the error of the orientation of the userwhen the state has changed into the standing state according to thereference orientation generated with the reference orientationgenerating unit 123, and the current orientation of the user. Afterthat, the orientation error calculating unit 124 outputs the calculatederror of the orientation to the posture information calculating unit111.

The orientation when the user sits on a chair is used as the referenceorientation in the present embodiment on the assumption that thevariation in the orientation of the user is slight even when thestanding user sits down on the chair and stands up again. There is apossibility that the orientation when the user stands up again includesan error due to the integration. Thus, the error between the referenceorientation and the orientation when the user stands up again iscalculated and is used for calculating the offset value used forsuppressing the deviation of the orientation of the user. In otherwords, the present embodiment can prevent the orientation determinedwhen the user starts moving from largely deviating owing to theorientation being not accurately determined and the error beingaccumulated when the user stays at an absolute position that is areference and is a place to which a radio wave does not reach, for along time.

Flow of Reference Orientation Determining Process According to FirstEmbodiment

Next, a flow of the reference orientation determining process accordingto the first embodiment will be described using FIG. 4. FIG. 4 is aflowchart of an exemplary flow of the reference orientation determiningprocess according to the first embodiment. Note that the referenceorientation determining process is a process performed mainly with thereference orientation measuring unit 120.

As illustrated in FIG. 4, the posture information calculating unit 111calculates the posture angle of the user according to the sensor valuesoutput from the inertial sensor 15 and calculates the offset value basedon the error of the orientation calculated with the orientation errorcalculating unit 124 to calculate the posture angle corrected with theoffset value (step S101). The posture state detecting unit 121 detectsthe posture state of the user that is in a standing state or anon-standing state based on the posture angle calculated with theposture information calculating unit 111 and the sensor values after thecoordinate transformation (step S102).

When the posture state detected with the posture state detecting unit121 is a standing state (step S103: Yes), the posture change determiningunit 122 determines based on the temporal variation in the verticalacceleration whether the state has changed from the standing state tothe non-standing state (step S104). When the posture change determiningunit 122 determines at that time that the state has changed from thestanding state to the non-standing state (step S104: Yes), the referenceorientation generating unit 123 generates the reference orientationcorresponding to the orientation of the user when the state has changedinto the non-standing state (step S105). When a reference orientationhas been generated already at that time, the reference orientationgenerating unit 123 updates the reference orientation to thenewly-generated reference orientation. Furthermore, the process in stepS101 is performed again after the generation of the referenceorientation. On the other hand, when the posture change determining unit122 determines that the state has not changed from the standing state tothe non-standing state (step S104: No), the process in step S101 isperformed again.

Alternatively, when the posture state detected with the posture statedetecting unit 121 is a non-standing state (step S103: No), the posturechange determining unit 122 determines, based on the temporal variationin the vertical acceleration, whether the state has changed from thenon-standing state to a standing state (step S106). When the posturechange determining unit 122 determines at that time that the state haschanged from the non-standing state to the standing state (step S106:Yes), the orientation error calculating unit 124 obtains the currentorientation of the user from the position/orientation calculating unit112 to calculate the error of the orientation of the user (theorientation error) according to the reference orientation generated withthe reference orientation generating unit 123 and the currentorientation of the user (step S107). After the orientation error iscalculated, the process in step S101 is performed again. On the otherhand, when the posture change determining unit 122 determines that thestate has not changed from the non-standing state to the standing state(step S106: No), the process in step S101 is performed again.

Effect of First Embodiment

The information processing device 100 uses the orientation when the usergets into a non-standing state from a standing state as the referenceorientation, and uses the error between the reference orientation andthe orientation when the user gets in the standing state for offsetcorrection. As a result, the information processing device 100 can moreaccurately determine the orientation when the user stands up and startsmoving.

Exemplary Modification of First Embodiment

In the first embodiment, the case in which the orientation when the usergets into the non-standing state from the standing state is used as thereference orientation has been described. In the exemplary modificationof the first embodiment, a case in which the orientation when the usergets into a non-walking state from a walking state is used as thereference orientation will be described. Note that the deviceconfiguration in the exemplary modification of the first embodiment issimilar to the information processing device 100 in the firstembodiment. Hereinafter, the functions different from those in theinformation processing device 100 according to the first embodiment willbe described.

FIG. 5 is a diagram of exemplary variation in the vertical accelerationwhen the posture state changes according to the exemplary modificationof the first embodiment. For example, FIG. 5 illustrates that the usergets into a state in which the user is in walking (in a walking state)from a state in which the user is at rest (in a non-walking state). Theposture change determining unit 122 determines, according to thetemporal variation in the vertical acceleration illustrated in FIG. 5,that the user walks from a rest state or stops from a walking state.Then, the posture change determining unit 122 outputs the determinationresult of the posture state to the reference orientation generating unit123 and the orientation error calculating unit 124.

When the posture change determining unit 122 determines that the posturestate of the user has changed from a walking state into a rest state,the reference orientation generating unit 123 generates the referenceorientation corresponding to the orientation of the user when the statehas changed into the rest state. The orientation of the user when thestate has changed into the rest state can be obtained from theposition/orientation calculating unit 112. The reference orientation isgenerated (updated) every time the posture state of the user changesfrom a walking state into a non-walking state. The generated (updated)reference orientation is appropriately used in the orientation errorcalculating unit 124.

When the posture change determining unit 122 determines that the posturestate of the user has changed from a rest state into a walking state,the orientation error calculating unit 124 obtains the orientation ofthe user when the state has changed into the walking state from theposition/orientation calculating unit 112. In other words, theorientation error calculating unit 124 obtains the current orientationof the user from the position/orientation calculating unit 112. Then,the orientation error calculating unit 124 calculates the error of theorientation of the user when the state has changed into the walkingstate according to the reference orientation generated with thereference orientation generating unit 123 and the current orientation ofthe user. After that, the orientation error calculating unit 124 outputsthe calculated error of the orientation to the posture informationcalculating unit 111.

Flow of Reference Orientation Determining Process According to ExemplaryModification of First Embodiment

Next, a flow of the reference orientation determining process accordingto an exemplary modification of the first embodiment will be describedusing FIG. 6. FIG. 6 is a flowchart of an exemplary flow of thereference orientation determining process according to an exemplarymodification of the first embodiment.

As illustrated in FIG. 6, the posture information calculating unit 111calculates the posture angle of the user according to the sensor valuesoutput from the inertial sensor 15, and calculates the offset valuebased on the error of the orientation calculated with the orientationerror calculating unit 124 to calculate the posture angle corrected withthe offset value (step S201). The posture state detecting unit 121detects the posture state of the user that is in a walking state or anon-walking state based on the posture angle calculated with the postureinformation calculating unit 111 and the sensor values after thecoordinate transformation (step S202).

When the posture state detected with the posture state detecting unit121 is a walking state (step S203: Yes), the posture change determiningunit 122 determines, based on the temporal variation in the verticalacceleration, whether the state has changed from the walking state intoa non-walking state (step S204). When the posture change determiningunit 122 determines that the state has changed from the walking stateinto a non-walking state (step S204: Yes), the reference orientationgenerating unit 123 generates the reference orientation corresponding tothe orientation of the user when the state has changed into thenon-walking state (step S205). When a reference orientation has beengenerated already at that time, the reference orientation generatingunit 123 updates the reference orientation to the newly-generatedreference orientation. Furthermore, the process in step S201 isperformed again after the generation of the reference orientation. Onthe other hand, when the posture change determining unit 122 determinesthat the state has not changed from the walking state to a non-walkingstate (step S204: No), the process in step S201 is performed again.

Alternatively, when the posture state detected with the posture statedetecting unit 121 is a non-walking state (step S203: No), the posturechange determining unit 122 determines, based on the temporal variationin the vertical acceleration, whether the state has changed from thenon-walking state to a walking state (step S206). When the posturechange determining unit 122 determines at that time that the state haschanged from the non-walking state to the walking state (step S206:Yes), the orientation error calculating unit 124 obtains the currentorientation of the user from the position/orientation calculating unit112 to calculate the error of the orientation of the user (theorientation error) according to the reference orientation generated withthe reference orientation generating unit 123 and the currentorientation of the user (step S207). After the orientation error iscalculated, the process in step S201 is performed again. On the otherhand, when the posture change determining unit 122 determines that thestate has not changed from the non-standing state to the standing state(step S206: No), the process in step S201 is performed again.

Effect of Exemplary Modification of First Embodiment

The information processing device 100 uses the orientation when the usergets into a non-walking state (for example, a rest state) from a walkingstate as the reference orientation, and uses the error between thereference orientation and the orientation when the user gets in thestanding state for offset correction. As a result, the informationprocessing device 100 can more accurately determine the orientation whenthe user gets into a walking state from a non-walking state and startsmoving.

Second Embodiment

In the first embodiment, the case in which the orientation when the usergets into the non-standing state from the standing state is used as thereference orientation has been described. In a second embodiment, a casein which the reference orientation is updated during a non-standingstate will be described.

Device Configuration in Second Embodiment

The configuration of an information processing device according to thesecond embodiment will be described using FIG. 7. FIG. 7 is a functionalblock diagram of an exemplary configuration of the informationprocessing device according to the second embodiment. In the secondembodiment, the same components as in the first embodiment will bedenoted with the same reference signs and the descriptions of the samecomponents may be omitted. Specifically, the functions, components, andprocesses other than a reference orientation updating unit 225 to bedescribed below are the same as in the first embodiment.

As illustrated in FIG. 7, an information processing device 200 includesan inertial sensor 15, an operation display unit 16, a posture anglemeasuring unit 110, and a reference orientation measuring unit 220.Among them, the posture angle measuring unit 110 includes a postureinformation calculating unit 111 and a position/orientation calculatingunit 112. The reference orientation measuring unit 220 includes aposture state detecting unit 121, a posture change determining unit 122,a reference orientation generating unit 123, an orientation errorcalculating unit 124, and a reference orientation updating unit 225.

The reference orientation updating unit 225 updates the referenceorientation generated with the reference orientation generating unit 123during a non-standing state. More specifically, the referenceorientation updating unit 225 determines whether the variation in thesensor value output from the inertial sensor 15 becomes equal to orlarger than a predetermined amount of variation during a situation inwhich the posture change determining unit 122 determines that theposture state of the user has changed from the standing state to thesitting state. For example, the variation in the sensor value is thevariation in the angular velocity. In other words, the referenceorientation updating unit 225 determines whether the orientation of theuser during sitting has changed by determining whether the variation inthe angular velocity of the information processing device 200 becomesequal to or larger than a predetermined amount of variation during astate in which the user sits on a chair or the like.

When the variation in the angular velocity becomes equal to or largerthan the predetermined amount of variation, the reference orientationupdating unit 225 updates the reference orientation generated with thereference orientation generating unit 123 to the orientation of the userwhen the variation in the angular velocity becomes equal to or largerthan the predetermined amount of variation. For example, thepredetermined amount of variation is a larger value than the drift ofthe angular velocity sensor, and at least a value from which the factthat the orientation of the user has changed can be detected. Note thatthe reference orientation updating unit 225 updates the referenceorientation every time the variation in the angular velocity becomesequal to or larger than the predetermined amount of variation during thenon-standing state. The reference orientation updated as described aboveis used in the process with the orientation error calculating unit 124,similarly to the first embodiment.

In the present embodiment, the orientation when the user sits down on achair is used as the reference orientation, and the referenceorientation is updated in consideration of the orientation changedduring a state in which the user sits on a chair. The error between theupdated reference orientation and the orientation when the user standsup again is calculated such that the error is used for calculating theoffset value for suppressing the deviation of the orientation of theuser.

Flow of Reference Orientation Determining Process According to SecondEmbodiment

Next, a flow of the reference orientation determining process accordingto the second embodiment will be described using FIG. 8. FIG. 8 is aflowchart of an exemplary flow of the reference orientation determiningprocess according to the second embodiment. Note that the detaileddescriptions of the same processes as in the flow of the referenceorientation determining process according to the first embodiment willbe omitted. Specifically, the processes in step S301 to step S305 arethe same as the processes in step S101 to step S105.

As illustrated in FIG. 8, when the posture state detected with theposture state detecting unit 121 is a non-standing state (step S303:No), the posture change determining unit 122 determines based on thetemporal variation in the vertical acceleration whether the state haschanged from a non-standing state to the standing state (step S306).When the posture change determining unit 122 determines that the statehas not changed from the non-standing state to the standing state (stepS306: No), the reference orientation updating unit 225 determineswhether the variation in the angular velocity output from the inertialsensor 15 is equal to or larger than a predetermined amount of variation(step S307). When determining that the variation in the angular velocityis equal to or larger than the predetermined amount of variation (stepS307: Yes), the reference orientation updating unit 225 updates thereference orientation to the orientation when the variation in theangular velocity becomes equal to or larger than the predeterminedamount of variation (step S308). After the reference orientation isupdated, the process in step S301 is performed again. On the other hand,the reference orientation updating unit 225 determines that thevariation in the angular velocity is not equal to or larger than thepredetermined amount of variation (step S307: No), the process in stepS301 is performed again.

Alternatively, when the posture change determining unit 122 determinesthat the state has changed from the non-standing state to the standingstate (step S306: Yes), the orientation error calculating unit 124calculates the error of the orientation of the user (the orientationerror) according to the reference orientation updated with the referenceorientation updating unit 225 and the current orientation of the user(step S309). After the orientation error is calculated, the process instep S301 is performed again. Note that when the reference orientationupdating unit 225 has not updated the reference orientation, thereference orientation generated with the reference orientationgenerating unit 123 is used, similarly to the first embodiment.

Effect of Second Embodiment

The information processing device 200 uses the orientation when the usergets into a non-standing state from a standing state as the referenceorientation, and updates the reference orientation to the orientationwhen variation in the angular velocity becomes equal to or larger than apredetermined amount of variation during the non-standing state to usethe error between the updated reference orientation and the orientationwhen the user gets into a standing state for offset correction. As aresult, the information processing device 200 can more accuratelydetermine the orientation when the user stands up and starts moving.

Third Embodiment

In the second embodiment, the case in which the orientation when theuser gets into a non-standing state from a standing state is used as thereference orientation and, when the variation in the angular velocitybecomes equal to or larger than a predetermined amount of variationduring the non-standing state, the reference orientation is updated tothe orientation at that time has been described. In a third embodiment,a case in which the orientation of the user that varies when the usergets into a non-standing state from a standing state, or when the usergets into a standing state from a non-standing state is reflected on thereference orientation will be described.

Device Configuration in Third Embodiment

The configuration of an information processing device according to thethird embodiment will be described using FIG. 9. FIG. 9 is a functionalblock diagram of an exemplary configuration of the informationprocessing device according to the third embodiment. In the thirdembodiment, the same components as in the first embodiment or the secondembodiment will be denoted with the same reference signs and thedetailed descriptions of the same components may be omitted.Specifically, the functions, components, and processes other than anorientation variation reflecting unit 326 to be described below are thesame as in the first embodiment or the second embodiment.

As illustrated in FIG. 9, an information processing device 300 includesan inertial sensor 15, an operation display unit 16, a posture anglemeasuring unit 110, and a reference orientation measuring unit 320.Among them, the posture angle measuring unit 110 includes a postureinformation calculating unit 111, and a position/orientation calculatingunit 112. The reference orientation measuring unit 320 includes aposture state detecting unit 121, a posture change determining unit 122,a reference orientation generating unit 123, an orientation errorcalculating unit 124, a reference orientation updating unit 225, and anorientation variation reflecting unit 326.

The orientation variation reflecting unit 326 calculates an amount ofthe variation in the orientation of the user while the posture state ischanging and reflects the amount of variation in the orientation on thereference orientation. More specifically, when the posture changedetermining unit 122 determines that the posture state of the user haschanged from the standing state into the sitting state, the orientationvariation reflecting unit 326 obtains the posture angle of the userwhile the posture state changes from the posture information calculatingunit 111. The orientation variation reflecting unit 326 calculates theamount of the variation in the orientation of the user while the usersits on a chair or the like from a standing state according to theobtained posture angle of the user. Subsequently, the orientationvariation reflecting unit 326 updates the reference orientation byreflecting the calculated amount of the variation on the referenceorientation generated with the reference orientation generating unit123.

When the posture change determining unit 122 determines whether theposture state of the user has changed from a sitting state to a standingstate, the orientation variation reflecting unit 326 obtains the postureangle of the user while the posture state changes from the postureinformation calculating unit 111. Then, the orientation variationreflecting unit 326 calculates an amount of the variation in theorientation of the user while the user stands up from a state in whichthe user sits on a chair or the like according to the posture angle ofthe user. Subsequently, the orientation variation reflecting unit 326updates the reference orientation by reflecting the calculated amount ofthe variation in the orientation on the reference orientation generatedwith the reference orientation generating unit 123. Note that thereference orientation may be updated with the reference orientationupdating unit 225 as described in the second embodiment. The referenceorientation updated as described above is used in the process with theorientation error calculating unit 124, similarly to the firstembodiment or the second embodiment.

FIG. 10A and FIG. 10B are diagrams of exemplary variation in thevertical acceleration and angular velocity when the posture statechanges. In FIG. 10A and FIG. 10B, the vertical acceleration and angularvelocity are shown on the vertical axis, and the time is shown on thehorizontal axis. Note that the vertical acceleration is represented witha solid line and the angular velocity is represented with a broken line.

As illustrated in FIG. 10A, the value of the vertical accelerationvaries in a positive direction first and then varies largely in anegative direction from around 3.5 seconds. The variation in thevertical acceleration indicates, for example, that the user gets into astanding state from a state in which the user sits on a chair.Meanwhile, the value of the angular velocity varies largely in anegative direction from around the time at which three seconds haveelapsed. The variation in the angular velocity described aboveindicates, for example, that the user has changed the posture state in aright direction. In other words, FIG. 10A illustrates an example inwhich the user has changed the posture state in a right direction whilestanding up from the sitting state. The orientation variation reflectingunit 326 calculates the amount of the variation in the orientation ofthe user based on the variation in the angular velocity while the userstands up from a state in which the user sits on a chair (in a “posturestate determining period” in FIG. 10A) to reflect the amount on thereference orientation.

As illustrated in FIG. 10B, the value of the vertical accelerationvaries in a positive direction first and then varies largely in anegative direction from around the time at which two seconds haveelapsed. The variation in the vertical acceleration described aboveindicate, for example, that the user gets into a standing state from astate in which the user sits on a chair. Meanwhile, the value of theangular velocity varies largely in a positive direction from around 1.5seconds. This variation in the angular velocity indicates, for example,that the user has changed the posture state in a left direction. Inother words, FIG. 10B illustrates an example in which the user haschanged the posture state in a left direction while standing up from thesitting state. The orientation variation reflecting unit 326 calculatesthe amount of the variation in the orientation of the user based on thevariation in the angular velocity while the user stands up from a statein which the user sits on a chair (during a “posture state determiningperiod” in FIG. 10B) to reflect the amount on the reference orientation.

In the present embodiment, the orientation when the user sits down on achair is used as the reference orientation, and the referenceorientation is updated in consideration of the amount of the variationin the orientation while the posture state of the user changes. Theerror between the updated reference orientation and the orientation whenthe user stands up again is calculated such that the error is used forcalculating the offset value for suppressing the deviation of theorientation of the user.

Flow of Reference Orientation Determining Process According to ThirdEmbodiment

Next, a flow of the reference orientation determining process accordingto the third embodiment will be described using FIG. 11. FIG. 11 is aflowchart of an exemplary flow of the reference orientation determiningprocess according to the third embodiment. Note that the detaileddescriptions of the same processes as in the flow of the referenceorientation determining process according to the first embodiment or thesecond embodiment will be omitted. Specifically, the processes in stepS401 to step S405 are the same as the processes in step S101 to stepS105. Similarly, the processes in step S408 and step S409 are the sameas the processes in step S307 and step S308.

As illustrated in FIG. 11, when the posture change determining unit 122determines that the state has changed from the standing state to thenon-standing state (step S404: Yes), the orientation variationreflecting unit 326 obtains the posture angle of the user while theposture state changes from the posture information calculating unit 111,calculates the amount of the variation in the orientation of the userwhile the posture state changes, and reflects the calculated amount ofthe variation in the orientation on the reference orientation generatedwith the reference orientation generating unit 123 to update thereference orientation (step S406). After the reference orientation isupdated, the process in step S401 is performed again.

When the posture change determining unit 122 determines that the statehas changed from the non-standing state to the standing state (stepS407: Yes), the orientation variation reflecting unit 326 obtains theposture angle of the user while the posture state changes from theposture information calculating unit 111, calculates the amount of thevariation in the orientation of the user while the posture statechanges, and reflects the calculated amount of the variation in theorientation on the reference orientation generated with the referenceorientation generating unit 123 to update the reference orientation(step S410). Note that, when the reference orientation updating unit 225has updated the reference orientation, the amount of the variation inthe orientation is reflected on the reference orientation updated withthe reference orientation updating unit 225, similarly to the secondembodiment, such that the reference orientation is updated. Theorientation error calculating unit 124 calculates the error of theorientation of the user (the orientation error) according to thereference orientation updated with the orientation variation reflectingunit 326 and the current orientation of the user (step S411). After theorientation error is calculated, the process in step S401 is performedagain.

Effect of Third Embodiment

When the user gets into a non-standing state from a standing state, orwhen the user gets into a standing state from a non-standing state, theinformation processing device 300 reflects the amount of the variationin the orientation of the user during the posture state determiningperiod on the reference orientation to use, for offset correction, theerror between the reference orientation on which the amount of thevariation in the orientation is reflected and the orientation when theuser gets into the standing state. As a result, the informationprocessing device 300 can more accurately determine the orientation whenthe user stands up and starts moving.

Fourth Embodiment

The embodiments of the information processing device according to thepresent invention have been described above. However, the presentinvention can be implemented in various different embodiments other thanthe embodiments described above. So, an embodiment having different (1)configuration and (2) program will be described.

(1) Configuration

The procedures in the processes, and in control, the specific names, thespecific information including various types of data, parameters, andthe like that have been described herein above and in the drawings canarbitrarily be changed unless otherwise indicated. Each of thecomponents of the devices illustrated in the drawings is a functionalconcept and is not necessarily physically be configured as in thedrawings. In other words, the specific form of the distribution orintegration of the device is not limited to those in the drawings, andall or part thereof can functionally or physically be distributed orintegrated in an arbitrary unit depending on various loads or usageconditions.

In each of the embodiments described above, the information processingdevice has been described as a mobile terminal device such as asmartphone that the user possesses, or a dedicated terminal device forpositioning the user. The information processing device can be a serverdevice configured to, perform various processes. Hereinafter, apositioning system that positions the user using a server device will bedescribed.

FIG. 12 is a diagram of an exemplary configuration of a positioningsystem including a server device. As illustrated in FIG. 12, apositioning system 1 includes a mobile terminal device 2, and a serverdevice 3. The mobile terminal device 2 and the server device 3 areconnected to a network such as the Internet so as to communicate witheach other. Note that the mobile terminal device 2 has a differentfunction from the mobile terminal device (information processing device)described above in the embodiments.

In the configuration described above, the mobile terminal device 2includes an inertial sensor, and transmits the sensor value detectedwith the inertial sensor to the server device 3. The server device 3receives the sensor value transmitted from the mobile terminal device 2,and performs a posture angle determining process or a referenceorientation determining process based on the received sensor value.Then, the server device 3 transmits the positioning result to the mobileterminal device 2. The mobile terminal device 2 receives the positioningresult from the server device 3 to output and display the receivedpositioning result. In other words, the positioning system 1 accordingto the present embodiment causes the server device 3 connected to thenetwork to perform the posture angle determining process or thereference orientation determining process described in the embodiments.Note that various functions performed in the posture angle determiningprocess or the reference orientation determining process are notnecessarily performed with a single server device 3. The functions maybe implemented with a plurality of server devices 3.

FIG. 13 is a functional block diagram of exemplary configurations of themobile terminal device 2 and server device 3 included in the positioningsystem 1. Note that the same functions as in the information processingdevices according to the embodiments described above are denoted withthe same reference signs in FIG. 13 and the detailed descriptions of thesame functions will be omitted.

As illustrated in FIG. 13, the mobile terminal device 2 includes aninertial sensor 15, an operation display unit 16, and a communicationunit 17. The server device 3 includes a communication unit 101, aposture angle measuring unit 110, and a reference orientation measuringunit 120. Among them, the posture angle measuring unit 110 includes aposture information calculating unit 111, and a position/orientationcalculating unit 112. The reference orientation measuring unit 120includes a posture state detecting unit 121, a posture changedetermining unit 122, a reference orientation generating unit 123, andan orientation error calculating unit 124.

The different functions from the information processing devicesaccording to the embodiments described above are the communication unit17 and the communication unit 101. In other words, the functions fortransmitting and receiving the sensor value detected with the inertialsensor 15 and the positioning result calculated with the server device 3are included in the present embodiment. Note that, although only thesame functions in the server device 3 as the information processingdevice 100 are illustrated in the drawing, the server device 3 can alsoinclude the same functions as the information processing device 200 orthe information processing device 300. In other words, the server device3 can also include the reference orientation updating unit 225 and theorientation variation reflecting unit 326.

(2) Program

As an aspect, an information processing program to be executed in theinformation processing device 100 is provided while being recorded as afile in an installable or executable format in a computer-readablerecording medium such as a CD-ROM, a flexible disk (FD), a CD-R, or aDigital Versatile Disk (DVD). Alternatively, the information processingprogram to be executed in the information processing device 100 can bestored in a computer connected to a network such as the Internet so asto be provided by a download through the network. Alternatively, theinformation processing program to be executed in the informationprocessing device 100 can be configured to be provided or distributedthrough a network such as the Internet. Alternatively, the informationprocessing program can be configured to be provided while beingpreviously embedded in ROM or the like.

The information processing program to be executed in the informationprocessing device 100 has a module configuration including the unitsdescribed above (the posture change determining unit 122, the referenceorientation generating unit 123, and the orientation error calculatingunit 124). As actual hardware, a processor (CPU) reads the informationprocessing program from a recording medium and executes the program.This loads each of the units onto the main storage device so as togenerate the posture change determining unit 122, the referenceorientation generating unit 123, and the orientation error calculatingunit 124 on the main storage device.

An embodiment achieves an effect of more accurately determining theorientation of a moving object.

Although the invention has been described with respect to specificembodiments for a complete and clear disclosure, the appended claims arenot to be thus limited but are to be construed as embodying allmodifications and alternative constructions that may occur to oneskilled in the art that fairly fall within the basic teaching herein setforth.

REFERENCE SIGNS LIST

-   -   100 Information processing device    -   110 Posture angle measuring unit    -   111 Posture information calculating unit    -   112 Position/orientation calculating unit    -   120 Reference orientation measuring unit    -   121 Posture state detecting unit    -   122 Posture change determining unit    -   123 Reference orientation generating unit    -   124 Orientation error calculating unit

CITATION LIST Patent Literature Patent Literature 1 Japanese Laid-openPatent Publication No. 2013-088280 Patent Literature 2 WO 2010/001970 A

1. An information processing device comprising: a posture changedetermining unit that determines, based on an output value of aninertial sensor, whether a posture state of a moving object has changed;a reference orientation generating unit that, when it is determined thatthe posture state of the moving object has changed from a first posturestate into a second posture state different from the first posturestate, generates a reference orientation corresponding to a firstorientation of the moving object when the state has changed into thesecond posture state, the first orientation being calculated from theoutput value of the inertial sensor; and an orientation errorcalculating unit that, when it is determined that the posture state ofthe moving object has changed from the second posture state into thefirst posture state, calculates an error of an orientation of the movingobject when the state has changed into the first posture state accordingto the reference orientation, and a second orientation of the movingobject when the state has changed into the first posture state, thesecond orientation being calculated from the output value of theinertial sensor.
 2. The information processing device according to claim1, further comprising: a reference orientation updating unit that, whenvariation in the output value of the inertial sensor becomes equal to orlarger than a predetermined amount of variation during the secondposture state, updates the reference orientation to a third orientationof the moving object when the variation in the output value becomesequal to or larger than the predetermined amount of variation, the thirdorientation being calculated from the output value of the inertialsensor.
 3. The information processing device according to claim 2,wherein when variation in an angular velocity that is one of the outputvalue of the inertial sensor becomes equal to or larger than apredetermined amount of variation, the reference orientation updatingunit updates the reference orientation to the third orientationcorresponding to a fourth orientation of the moving object when thevariation in the angular velocity becomes equal to or larger than thepredetermined amount of variation, the fourth orientation beingcalculated from the output value of the inertial sensor.
 4. Theinformation processing device according to claim 1, further comprising:an orientation variation reflecting unit that calculates, based on theoutput value of the inertial sensor, an amount of variation in theorientation of the moving object while the posture state changes, andreflect the amount of variation in the orientation on the referenceorientation when it is determined that the posture state of the movingobject has changed from the first posture state into the second posturestate, or when it is determined that the posture state of the movingobject has changed from the second posture state to the first posturestate.
 5. The information processing device according to claim 1,wherein the first posture state indicates that a posture of the movingobject is a standing state, and the second posture state indicates thata posture of the moving object is a non-standing state.
 6. Theinformation processing device according to claim 1, wherein theorientation of the moving object calculated based on the output value ofthe inertial sensor is an orientation corrected based on the error ofthe orientation of the moving object.
 7. An information processingmethod comprising: determining, based on an output value of an inertialsensor, whether a posture state of a moving object has changed; when itis determined that the posture state of the moving object has changedfrom a first posture state into a second posture state different fromthe first posture state, generating a reference orientationcorresponding to a first orientation of the moving object when the statehas changed into the second posture state, the first orientation beingcalculated from the output value of the inertial sensor; and when it isdetermined that the posture state of the moving object has changed fromthe second posture state into the first posture state, calculating anerror of an orientation of the moving object when the state has changedinto the first posture state according to the reference orientation, anda second orientation of the moving object when the state has changedinto the first posture state, the second orientation being calculatedfrom the output value of the inertial sensor.
 8. A computer programproduct comprising a non-transitory computer-readable medium containingan information processing program, the program causing a computer toperform: determining, based on an output value of an inertial sensor,whether a posture state of a moving object has changed; when it isdetermined that the posture state of the moving object has changed froma first posture state into a second posture state different from thefirst posture state, generating a reference orientation corresponding toa first orientation of the moving object when the state has changed intothe second posture state, the first orientation being calculated fromthe output value of the inertial sensor; and when it is determined thatthe posture state of the moving object has changed from the secondposture state into the first posture state, calculating an error of anorientation of the moving object when the state has changed into thefirst posture state according to the reference orientation, and a secondorientation of the moving object when the state has changed into thefirst posture state, the second orientation being calculated from theoutput value of the inertial sensor.